本发明提出了一种逐波段修正负相关的光谱角填图方法,技术特征在于:首先展开传统光谱角的计算,将新增光谱波段值作为自变量,逐波段判断在新增波段上是否存在负相关,并对产生负相关的波段给出修正参数。本方法主要着重于解决传统光谱角填图方法不能区分光谱间存在的负相关,而导致特征不同的光谱曲线在相对某一参考光谱时被等同于同一类的现象。本方法实验证明,本发明提出的方法可以有效增大光谱间可分离性,对于传统光谱角填图方法无法分离的光谱向量,根据产生负相关波段的不同,呈阶段性可分,是后续高光谱遥感图像分类以及目标识别等应用的基础。
1.一种用于高光谱遥感图像逐波段修正负相关的光谱角填图方法,其特征在于步骤如下:步骤1:对于一幅高光谱遥感图像I=f(x,y,n),(x,y)∈Z
2为空间分辨率,n为光谱波段数,针对图像中待判定光谱向量x
n和已知参考光谱向量r
n,根据SAM算法定义,得出两个光谱向量之间的原始光谱角θr
n,x
n:
θ r n , x n = cos - 1 < r n , x n > | | r n | | | | x n | | ]]>步骤2:展开步骤1的公式,得出原始光谱角的分波段形式
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="176"/>
θ r m + 1 , x m + 1 = cos - 1 [ cos θ r m , x m < r m + 1 , r m > < x m + 1 , x m > | | r m + 1 | | | | r m | | | | x m + 1 | | | | x m | | ( 1 + < r + 1 , x + 1 > < r m , x m > ) ] ]]>其中m∈[1,n-1]为光谱向量下标,初始值为1,代表逐个递增的光谱波段数,r
+1和x
+1是波段数由m变为m+1时两个光谱向量相对应增加的分量;步骤3:将步骤2公式中的x
+1作为自变量x,生成以x
+1为自变量的函数,得出
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="145"/>和x
+1之间的函数关系式:
θ r m + 1 , x m + 1 = f ( x ) ]]> = cos - 1 [ cos θ r m , x m < r m + 1 , r m > | | r m + 1 | | | | r m | | < x m + 1 , x m > | | x m | | 2 + x 2 | | x m | | ( 1 + < r + 1 , x > < r m , x m > ) ] ]]>令方程形式
f ( x ) - θ r m + 1 , x m + 1 = 0 ; ]]>步骤4:对步骤3的方程式进行求解得出近似解x
0、x
1,规定x
01,x0和x1为造成相同光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="145"/>数值的光谱波段分量;步骤5:根据步骤4得出的近似解,对x+1进行负相关判断,记为x-,同时得出修正量α: x - = x 0 , α = | f ′ ( x 0 ) f ′ ( x 1 ) | < 1 x - = x 1 , α = | f ′ ( x 0 ) f ′ ( x 1 ) | > 1 ]]>其中f"(x0)和f"(x1)分别为函数f(x)在x0、x1两点处的导数;步骤6:根据步骤5的判定结果及修正量,对原始光谱角的分波段形式
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="153"/>进行负相关修正,得
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="212"/> θ r m + 1 , x m + 1 MNX - SAM = 1 α θ r m + 1 , x m + 1 , x + 1 = x - = x 0 θ e m + 1 , x m + 1 MNC - SAM = αθ r m + 1 , x m + 1 . x + 1 = x - = x 1 ]]>步骤7:如果m=n-1,原始光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="105"/>修正完毕,得到最终全波段修正的光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="220"/>否则,m=m+1,从步骤2开始重复。技术领域
本发明涉及一种用于高光谱遥感图像逐波段修正负相关的光谱角填图方法,用于高光谱遥感图像的光谱相似性度量,属于高光谱遥感数字图像处理和模式识别领域。逐波段修正负相关后的光谱角可以更好的反映相近光谱间的相似关系,增强光谱间的可分性,是更精细的光谱相似性度量手段,可以用于高光谱遥感图像中分类、目标识别等应用领域。
背景技术
高光谱成像仪可以获取的某一地域高光谱数据包含空间、光谱、辐射等多重信息,是遥感领域的前沿技术。分类是高光谱图像处理领域中一个重要的研究方向,在地物识别、对某地区地物分布进行精确划分以及对某地区地物改变进行探测等方面都有广泛的应用。高光谱图像传感器可以提供更广泛的光谱波段范围和更为细致的光谱特性,是高光谱遥感图像分类具有良好应用前景的保障,同时也是设计分类算法的难点所在。在对高光谱遥感图像进行分类时,主要涉及两方面的问题:一是选用何种光谱相似性度量方法,二是基于特定光谱相似性度量方法的分类策略。由此可以看出,如何判断两条光谱曲线的相似性,即光谱相似性度量方法,在高光谱遥感图像分类中占有举足轻重的地位。目前存在的光谱相似性度量方法可以根据其侧重点分为以下几类:以光谱信号协方差矩阵为基础计算两个光谱样本相似度的马氏距离(Mahalanobisxa0Distance,MD);以信息论为基础衡量两个光谱样本相对熵值的光谱信息散度(Spectralxa0Informationxa0Divergence,SID);在光谱特征空间中衡量两个光谱向量空间距离的最小欧式距离(Euclideanxa0Minimumxa0Distance,EMD)以及衡量两个光谱向量夹角的光谱角填图(Spectralxa0Anglexa0Mapper,SAM)等。其中SAM采用特征空间中两个光谱向量间的夹角作为光谱相似性度量,角度越小,表明两条光谱越相似。自SAM算法提出以来,因其简单高效、标量乘不变性等优点在地物标定、植被研究、高光谱图像压缩、地物光谱变化检测等方面得到了广泛的应用。然而SAM最终用一个标量来表示几十甚至上百波段光谱向量间的相似性,有着如下几点局限性:SAM中全部光谱都参与运算,大部分次要光谱的相似性会压制少数特征光谱之间的差异而造成SAM最终输出结果整体偏小,给后续的分类以及类间阈值的设定带来困难;SAM对每个光谱的加性因子敏感,这会给最终的输出带来不确定性;SAM无法分辨两个光谱向量间的正负相关,这使得相对于某一参考光谱,不同的光谱可能得到相同的角度值,最终造成误分、虚警率过高等现象。目前针对SAM内在的缺陷,一些改进的算法相继出现,BAO-SAM(Bandxa0add-onxa0SAM)对光谱向量中的分量进行选择,用产生最大光谱角的分量代表整个光谱,增大了光谱间和类间的可分性;SCM(Spectralxa0Correlationxa0Mapper)和RAF-SAM(Removedxa0Additivexa0Factorxa0SAM)都考虑了SAM对加性因子敏感的特点,前者用光谱向量减去均值向量,后者寻找产生最大光谱角的加性因子,两种算法在一定程度上都降低了虚警率;KSAC(Kernelxa0SpectralAngelxa0Cosine)和NSAM(Nonlinearxa0SAM)通过核函数将光谱向量非线性映射到高维特征空间再求光谱角,可以增大角度值,从而达到增大分类阈值可选择范围的效果。上述改进算法均能在一定程度上优化SMA算法的性能,同时也各有不足,BAO-SAM选取的波段子集,未必是表征整个光谱的最佳子集;而SCM和RAF-SAM在一定程度上改变了光谱数值,破坏了光谱与实际地物的对应关系;KSAC和NSAM通过非线性映射放大了光谱角度值,同时也放大了负相关的影响。所谓SAM算法中的负相关,指用光谱向量夹角表征全光谱相似度时,因最终角度值和每一波段的光谱数值呈非线性相关,而由此造成的不同光谱产生同一角度值的现象。
发明内容
要解决的技术问题为了避免现有技术的不足之处,本发明提出一种用于高光谱遥感图像逐波段修正负相关的光谱角填图方法,针对传统SAM算法负相关造成的光谱相似性误判问题,对SAM公式进行分析,将SAM求出的光谱角作为原始光谱角,给出公式逐波段展开形式,并根据每一波段对光谱角造成的影响判断该波段是否为负相关,然后对造成负相关的波段加以修正,最终达到去除负相关的效果。本发明提出的MNC-SAM可以有效地分离传统SAM算法错误等同的光谱向量,较之SAM算法,是更精确的光谱相似性度量手段,是后续分类、目标识别的基础。技术方案一种用于高光谱遥感图像逐波段修正负相关的光谱角填图方法,其特征在于步骤如下:步骤1:对于一幅高光谱遥感图像I=f(x,y,n),(x,y)∈Z2为空间分辨率,n为光谱波段数。针对图像中待判定光谱向量xn和已知参考光谱向量rn,根据SAM算法定义,得出两个光谱向量之间的原始光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="112"/> θ r n , x n = cos - 1 < r n , x n > | | r n | | | | x n | | ]]>步骤2:展开步骤1的公式,得出原始光谱角的分波段形式
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="167"/> θ r m + 1 , x m + 1 = cos - 1 [ cos θ r m , x m < r m + 1 , r m > | | r m + 1 | | | | r m | | < x m + 1 , x m > | | x m + 1 | | | | x m | | ( 1 + < r + 1 , x + 1 > < r m , x m > ) ] ]]>其中m∈[1,n-1]为光谱向量下标,初始值为1,代表逐个递增的光谱波段数,r+1和x+1是波段数由m变为m+1时两个光谱向量相对应增加的分量;步骤3:将步骤2公式中的x+1作为自变量x,生成以x+1为自变量的函数,得出
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="135"/>和x+1之间的函数关系式: θ r m + 1 , x m + 1 = f ( x ) ]]> = cos - 1 [ cos θ r m , x m < r m + 1 , r m > | | r m + 1 | | | | r m | | < x m + 1 , x m > | | x m | | 2 + x 2 | | x m | | ( 1 + < r + 1 , x > < r m , x m > ) ] ]]>令方程形式 f ( x ) - θ r m + 1 , x m + 1 = 0 ; ]]>步骤4:对步骤3的方程式进行求解得出近似解x0、x1,规定x01,x0和x1为造成相同光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="135"/>数值的光谱波段分量;步骤5:根据步骤4得出的近似解,对x+1进行负相关判断,记为x-,同时得出修正量α: x - = x 0 , α = | f ′ ( x 0 ) f ′ ( x 1 ) | < 1 x - = x 1 , α = | f ′ ( x 0 ) f ′ ( x 1 ) | > 1 ; ]]>步骤6:根据步骤5的判定结果及修正量,对原始光谱角的分波段形式
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="135"/>进行负相关修正,得
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="200"/> θ r m + 1 , x m + 1 MNC - SAM = 1 α θ r m + 1 , x m + 1 , x + 1 = x - = x 0 θ r m + 1 , x m + 1 MNC - SAM = α θ r m + 1 , x m + 1 , x + 1 = x - = x 1 ]]>步骤7:如果m=n-1,原始光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="84"/>修正完毕,得到最终全波段修正的光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="198"/>否则,m=m+1,从步骤2开始重复。有益效果本发明提出的一种用于高光谱遥感图像逐波段修正负相关的光谱角填图方法,通过逐波段判定、修正的方式消除传统SAM算法中负相关对光谱角产生的影响。对于任一波段数值,光谱角负相关的判定和修正都是基于当前光谱角度值对光谱相似性的表征能力。通过修正量α增大对当前部分光谱向量相似性表征能力差的光谱角。所有波段依次完成判定修正过程后,最终的光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="173"/>可以正确反映光谱间的相似关系,有效拉伸不同光谱间的可分离性,能够将传统SAM算法无法区分的光谱正确分离出来,可以用于后续的高光谱遥感图像分类、目标探测等应用场合,能够提高分类精度,有效地压制误分率。本发明提出一种逐波段修正负相关影响的光谱角填图算法MNC-SAM(Modifiedxa0Negativexa0Correlationxa0SAM),考察每个参与SAM运算的波段出现负相关的情况,同时对由负相关波段生成的光谱角加以修正,经过负相关修正的全波段光谱角克服了不同光谱产生相同光谱角的问题。试验表明,以MNC-SAM作为光谱相似性度量可以有效地降低误分率,提高分类精度。
附图说明
图1:本发明算法MNC-SAM的基本流程图。图2:一个通过负相关修正,增大模拟光谱可分离性的实例。图中实线代表参考光谱RefSp,不同虚线型代表待分光谱Sp0~Sp4,可以看出Sp0~Sp4的波形曲线在不同波段有明显的不同。SAM计算的Sp0~Sp4和RefSp间的光谱角均约为0.17980604(弧度),各角度之间差异小于10-6弧度,因此以SAM的结果,Sp0~Sp4完全不可分,将归为同一类。本发明提出的MNC-SAM计算的消除负相关影响的光谱角,将各角度之间差异提高至10-2弧度至10-1弧度之间,并且对不同波段出现负相关的情况,得到的光谱角度值不同,角度值随包含负相关波段数的增加而增大,使得光谱间的可分度性具有阶梯性。图3:MNC-SAM应用于实际高光谱遥感图像目标探测的结果,并与ENVI自带方法BandMax+SAM进行比较。实验采用ENVI软件自带的AVIRIS于美国加利福尼亚州圣地亚哥海军机场获取的图像,空间分辨率为400×400,光谱分辨率为10nm,共有224个波段的数据,为便于显示,选取原图左上200×200空间区域用于实验。试验目的是以(89,11)处像素点的光谱作为参考光谱,试图将左上角坐标(89,11)附近的三架飞机与指定的背景分离,ENVI提供了BandMax算法结合SAM用于该目标探测试验。图3(a)为实验图第122波段灰度拉伸图,图3(b)~(c)为以SAM算法为基础的BandMax的目标探测结果,由图可见随着阈值的微小增大,误分率明显增高(如图像右方的建筑物群),而目标本身的增强并不明显。而使用本发明提出的MNC-SAM算法修正了负相关后,拉伸了光谱间的可分度,通过设置不同的阈值,可以增强目标探测的效果,而不同地物被误分为目标的概率明显降低了。如图3(d)~(f)所示,随着阈值较大幅度的增加,属于目标的像素被正确探测到,而误分率得到了很好的控制。
具体实施方式
现结合实施例、附图对本发明作进一步描述:用于实施的硬件环境是:Pentium-43.0G计算机、1G内存、128M显卡;运行的软件环境是:Windowxa0XP操作系统,用IDL7.0程序设计语言结合ENVI实现了本发明提出的方法。1.对于一幅高光谱遥感图像原始高光谱遥感图像I=f(x,y,n),(x,y)∈Z2为空间分辨率,n为光谱波段数。针对图像中待判定光谱向量xn和已知参考光谱向量rn,根据SAM算法定义,得出两个光谱向量之间的原始光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="112"/> θ r n , x n = cos - 1 < r n , x n > | | r n | | | | x n | | ]]>2.针对步骤1的公式进行分解,
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="85"/>由参与运算的两个光谱向量的所有波段数据计算得到,因此产生负相关的波段数据隐性影响着最终的光谱角数值,造成误判现象。为了检测和判定每个光谱波段出现负相关的情况,最终去除负相关对光谱角的影响,写出SAM分波段的公式,得出分波段光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="135"/>如下: θ r m + 1 , x m + 1 = cos - 1 ( < r m + 1 , x m + 1 > | | r m + 1 | | | | x m + 1 | | ) ]]> = cos - 1 ( < r m , x m > + < r + 1 , x + 1 > | | r m | | 2 + | | r + 1 | | 2 | | x m | | 2 + | | x + 1 | | 2 ) ]]> = cos - 1 ( cos θ r m , x m 1 + < r + 1 , x + 1 > < r m , x m > 1 + | | r + 1 | | 2 | | r m | | 2 1 + | | x + 1 | | 2 | | x m | | 2 ) ]]> = cos - 1 [ cos θ r m , x m < r m + 1 , r m > | | r m + 1 | | | | r m | | < x m + 1 , x m > | | x m + 1 | | | | x m | | ( 1 + < r + 1 , x + 1 > < r m , x m > ) ] ]]>其中m∈[1,n-1]为光谱向量下标,初始值为1,r+1和x+1是波段数由m变为m+1时两个光谱向量相对应增加的分量,当m=n-1时,公式变为公式传统SAM公式。3.针对步骤2的分波段公式进行变换,将其写成
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="139"/>和x+1的函数式,将x+1作为自变量x,得出
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="140"/>和x+1的函数关系式f(x): θ r m + 1 , x m + 1 = f ( x ) ]]> = cos - 1 [ cos θ r m , x m < r m + 1 , r m > | | r m + 1 | | | | r m | | < x m + 1 , x m > | | x m | | 2 + x 2 | | x m | | ( 1 + < r + 1 , x > < r m , x m > ) ] ]]>该函数反应了每新增一个波段,相应的光谱角和所增加波段数据之间的函数关系,将函数改写成方程格式,得出:
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="399"/>4.对步骤3的方程进行求解。该方程一般有两个解,本发明采用二分法求解该方程的数值近似解,得出两个解:x0、x1,规定x01。这两个解是可能造成相同光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="135"/>数值的光谱波段分量,其中有一个等于光谱向量xn的第m+1个分量x+1,另一个解代入步骤2中公式可以得到相同的m+1维光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="170"/>5.根据步骤4得出的方程解,结合步骤3的函数式,进行负相关波段的判定。求出步骤3中函数f(x)在x0、x1两点处的导数f′(x0)和f′(x1)。在两个解x0、x1中做出负相关的判定如下,负相关记为x-,同时得出针对负相关的修正量α: x - = x 0 , α = | f ′ ( x 0 ) f ′ ( x 1 ) | < 1 x - = x 1 , α = | f ′ ( x 0 ) f ′ ( x 1 ) | > 1 ]]>步骤3在m维光谱角已确定的前提下,给出了m+1维光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="139"/>和光谱向量xn新增分量x+1之间的函数关系f(x)。其导数的绝对值表明光谱角度值相对于幅值x+1变化的敏感度,极限为零,这说明在产生大导数绝对值的x处,
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="140"/>对光谱相似度的表征性能随之变差。因此,针对产生相同光谱角的x0和x1,以其导数的比值作为负相关的判定条件和修正量,是合理的。6.针对原始光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="166"/>结合步骤5的判定结果和修正量,进行负相关修正,如果光谱向量xn真实的x+1被判定为负相关,得出相应光谱角修正值
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="199"/> θ r m + 1 , x m + 1 MNC - SAM = 1 α θ r m + 1 , x m + 1 , x + 1 = x - = x 0 θ r m + 1 , x m + 1 MNC - SAM = α θ r m + 1 , x m + 1 , x + 1 = x - = x 1 ]]>针对原始光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="112"/>将上述判定及修正过程用于光谱向量的所有波段,即完成本发明提出的MNC-SAM算法,最终输出全波段修正的光谱角
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="204"/>